import api from './auth'

// 获取需求内容列表
export const getDemandList = () => {
  return api.get('/api/api/v1/admin/demand-review/list')
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法访问需求列表')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 按状态获取需求列表
export const getDemandListByStatus = (status) => {
  return api.get(`/api/api/v1/admin/demand-review/list/status/${status}`)
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法访问需求列表')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 获取需求详情
export const getDemandDetail = (demandId) => {
  return api.get(`/api/api/v1/admin/demand-review/detail/${demandId}`)
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法获取需求详情')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 通过需求审核
export const approveDemand = (demandId) => {
  return api.post(`/api/api/v1/admin/demand-review/approve/${demandId}`)
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行审核操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 驳回需求审核
export const rejectDemand = (demandId, rejectionReason) => {
  return api.post(`/api/api/v1/admin/demand-review/reject/${demandId}`, {
    rejectionReason
  })
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行审核操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

// 将需求改为待审核
export const setDemandPending = (demandId) => {
  return api.post(`/api/api/v1/admin/demand-review/set-pending/${demandId}`)
    .then(response => {
      return response
    })
    .catch(error => {
      // 处理不同的错误状态码
      if (error.response?.status === 401) {
        throw new Error('管理员身份验证失败，请重新登录')
      } else if (error.response?.status === 403) {
        throw new Error('权限不足，无法执行状态修改操作')
      } else if (error.response?.status === 500) {
        throw new Error('服务器错误，请稍后重试')
      } else {
        throw error
      }
    })
}

export default {
  getDemandList,
  getDemandListByStatus,
  getDemandDetail,
  approveDemand,
  rejectDemand,
  setDemandPending
} 